home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / budget.arc / INCOME.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-06-26  |  8.6 KB  |  344 lines

  1. 10  REM  ///// INCOME AVERAGING /////
  2. 20  REM  CLEAR SCREEN
  3. 30  CLS
  4. 40  KEY OFF
  5. 50  PRINT SPC(32)
  6. 60  COLOR 1:PRINT "Income Averaging":COLOR 7
  7. 70  REM  ROUNDOFF FUNCTION            '70 REM ROUND OFF TO WHOLE DOLLARS
  8. 80  DEF FNR(X)=INT(100*X+0.5)/100      'DEF FNR (X)=INT(X+0.5)
  9. 90  PU$="$$###,###.##"                'PU$="  $$,###,###"
  10. 100  REM  A() HOLDS SCHEDULE G AMOUNTS
  11. 110  REM  B(), C() AND R() ARE FOR TAX RATE SCHEDULES
  12. 120  DIM A(46),B(4,16),C(4,16),R(4,16)
  13. 130  REM  READ TAX RATE SCHEDULES
  14. 140  GOSUB 2970
  15. 150  REM  CLEAR SCHEDULE G FOR NEXT TAXPAYER
  16. 160  FOR I=1 TO 46
  17. 170  A(I)=0
  18. 180  NEXT I
  19. 190  PRINT
  20. 200  PRINT "Enter taxpayer's name: ";
  21. 210  LINE INPUT; Z$
  22. 220  PRINT
  23. 230  PRINT "   Enter taxable year:";
  24. 240  INPUT " ",A(1)
  25. 250  IF A(1)>1980 THEN 280
  26. 260  PRINT "This program is for the years 1981 and thereafter."
  27. 270  GOTO 220
  28. 280  PRINT
  29. 290  PRINT "Enter filing status ..."
  30. 300  PRINT "   1 for Single"
  31. 310  PRINT "   2 for Married/Joint"
  32. 320  PRINT "   3 for Married/Separate"
  33. 330  PRINT "   4 for Head of Household"
  34. 340  PRINT "   5 for Qualifying Widow(er)"
  35. 350  INPUT " "; F
  36. 360  IF F<1 OR F>5 THEN PRINT "Please, 1 through 5 only.":GOTO 280
  37. 370  PRINT
  38. 380  REM
  39. 390  REM  **** BASE PERIOD INCOME AND ADJUSTMENTS ****
  40. 400  REM
  41. 410  REM  ENTER INCOME AMOUNTS--
  42. 420  PRINT "Enter the amount from:"
  43. 430  PRINT " Form 1040--line 34"
  44. 440  PRINT " Form 1040A (1977 and 1978)--line 10"
  45. 450  PRINT " Form 1040A (1979 and 1980)--line 11"
  46. 460  PRINT
  47. 470  FOR J=1 TO 4
  48. 480  PRINT "for"; A(1)-J;
  49. 490  INPUT ;""; A(J+1)
  50. 500  PRINT TAB(21)
  51. 510  PRINT "How many exemptions were claimed";
  52. 520  INPUT B
  53. 530  REM  EXEMPTIONS ARE $1000 EACH 1979 & AFTER, $750 EACH BEFORE 1979
  54. 540  A(J+5)=1000*B
  55. 550  IF A(1)-J>1978 THEN 570
  56. 560  A(J+5)=750*B
  57. 570  A(J+9)=A(J+1)-A(J+5)
  58. 580  NEXT J
  59. 590  PRINT
  60. 600  PRINT "Most taxpayers don't have excluded foreign income,"
  61. 610  PRINT "  amounts subject to a penalty under section 72(m)(5),"
  62. 620  PRINT "  or excess community income."
  63. 630  PRINT "Do you have any of these items (Y/N)";
  64. 640  INPUT W$
  65. 650  PRINT
  66. 660  IF W$="N" OR W$="n" THEN 790
  67. 670  FOR I=1 TO 4
  68. 680  PRINT "Excluded foreign income for"; A(1)-I;
  69. 690  INPUT A(15+I)
  70. 700  IF A(15+I)<0 THEN PRINT "Can not be less than zero.":GOTO 680
  71. 710  NEXT
  72. 720  PRINT
  73. 730  PRINT "Enter amounts subject to penalty, section 72(m)(5)";
  74. 740  INPUT A(20)
  75. 750  PRINT SPC(21)"Enter excess community income";
  76. 760  INPUT A(21)
  77. 770  PRINT
  78. 780  REM  ADD UP BASE PERIOD INCOME COLUMNS (a) THROUGH (d)
  79. 790  A(22)=A(10)+A(16)
  80. 800  A(23)=A(11)+A(17)
  81. 810  A(24)=A(12)+A(18)
  82. 820  A(25)=A(13)+A(19)
  83. 830  REM  BASE PERIOD INCOME CANNOT BE NEGATIVE
  84. 840  FOR I=22 TO 25
  85. 850  IF A(I)>0 THEN 870
  86. 860  A(I)=0
  87. 870  NEXT I
  88. 880  REM
  89. 890  REM  **** COMPUTATION OF AVERAGABLE INCOME ****
  90. 900  REM
  91. 910  REM  6. TAXABLE INCOME FROM FORM 1040, LINE 34
  92. 920  PRINT "Enter taxable income for"; A(1);
  93. 930  INPUT A(26)
  94. 940  PRINT
  95. 950  REM  8. SUBTRACT LINE 7 FROM LINE 6
  96. 960  A(27)=A(26)-A(20)
  97. 970  REM  9. EXCESS COMMUNITY INCOME IS A(21)
  98. 980  REM  10. ADJUSTED TAXABLE INCOME
  99. 990  A(28)=A(27)-A(21)
  100. 1000  REM  LINE 10 CANNOT BE NEGATIVE
  101. 1010  IF A(28)>=0 THEN 1040
  102. 1020  A(28)=0
  103. 1030  REM  11. TOTAL BASE PERIOD INCOME
  104. 1040  A(29)=A(22)+A(23)+A(24)+A(25)
  105. 1050  REM 12. 30% OF LINE 11
  106. 1060  A(30)=FNR(A(29)*0.3)
  107. 1070  REM  13. AVERAGEABLE INCOME
  108. 1080  A(31)=A(28)-A(30)
  109. 1090  IF A(31)>3000 THEN 1210
  110. 1100  PRINT Z$;
  111. 1110  PRINT " does NOT qualify for averaging."
  112. 1120  PRINT "Averageable income for"; A(1); "is ";
  113. 1130  PRINT USING "$$#,###"; A(31);:PRINT ","
  114. 1140  PRINT SPC(22)"which is  $3,000 or less."
  115. 1150  PRINT
  116. 1160  GOTO 2420
  117. 1170  REM
  118. 1180  REM  **** COMPUTATION OF TAX ****
  119. 1190  REM
  120. 1200  REM  14. AMOUNT FROM LINE 12
  121. 1210  A(32)=A(30)
  122. 1220  REM  15. 20% OF LINE 13
  123. 1230  A(33)=FNR(A(31)*0.2)
  124. 1240  REM  16. TOTAL (ADD LINES 14 AND 15)
  125. 1250  A(34)=A(32)+A(33)
  126. 1260  REM  17. EXCESS COMMUNITY INCOME IS A(21)
  127. 1270  REM  18. TOTAL (ADD LINES 16 AND 17)
  128. 1280  A(35)=A(34)+A(21)
  129. 1290  REM  19. TAX ON LINE 18 AMOUNT
  130. 1300  S=A(35)
  131. 1310  GOSUB 2660
  132. 1320  A(36)=T
  133. 1330  REM  20. TAX ON LINE 16 AMOUNT
  134. 1340  S=A(34)
  135. 1350  GOSUB 2660
  136. 1360  A(37)=T
  137. 1370  REM  21. TAX ON LINE 14 AMOUNT
  138. 1380  S=A(32)
  139. 1390  GOSUB 2660
  140. 1400  A(38)=T
  141. 1410  REM  22. SUBTRACT LINE 21 FROM LINE 20
  142. 1420  A(39)=A(37)-A(38)
  143. 1430  REM  23. MULTIPLY LINE 22 AMOUNT BY 4
  144. 1440  A(40)=4*A(39)
  145. 1450  REM  IF NO SECTION 72(m)(5) PENALTY INCOME, SKIP TO LINE 28
  146. 1460  IF A(20)=0 THEN 1580
  147. 1470  REM  24. TAX ON LINE 6 AMOUNT
  148. 1480  S=A(26)
  149. 1490  GOSUB 2660
  150. 1500  A(41)=T
  151. 1510  REM  25. TAX ON LINE 8 AMOUNT
  152. 1520  S=A(27)
  153. 1530  GOSUB 2660
  154. 1540  A(42)=T
  155. 1550  REM  26. SUBTRACT LINE 25 FROM LINE 24
  156. 1560  A(43)=A(41)-A(42)
  157. 1570  REM  27.  ADD LINES 19, 23 AND 26
  158. 1580  A(44)=A(36)+A(40)+A(43)
  159. 1590  REM  28. MULTIPLY LINE 27 BY .0125
  160. 1600  A(45)=A(44)*0.0125
  161. 1610  REM  29. TAX (SUBTRACT LINE 28 FROM LINE 27)
  162. 1620  A(46)=A(44)-A(45)
  163. 1630  REM
  164. 1640  REM  **** PRINT SCHEDULE G ****
  165. 1650  REM
  166. 1660  PRINT "For ";Z$;". the tax for";A(1);
  167. 1670  PRINT "using income averaging,"
  168. 1680  PRINT "comes to"; : PRINT USING PU$; A(46)
  169. 1690  PRINT "THE FOLLOWING REPRESENTS THE FILLED-IN";
  170. 1700  PRINT " SCHEDULE G USING THE 1981 FORMAT:"
  171. 1710  PRINT
  172. 1720  PRINT " SCHEDULE G"SPC(17)"Income Averaging"SPC(22) A(1)
  173. 1730  PRINT Z$;TAB(31)
  174. 1740  PRINT "Filing status: ";
  175. 1750  ON F GOTO 1760,1780,1800,1820,1840
  176. 1760  PRINT "Single"
  177. 1770  GOTO 1850
  178. 1780  PRINT "Married/Joint"
  179. 1790  GOTO 1850
  180. 1800  PRINT "Married/Separate"
  181. 1810  GOTO 1850
  182. 1820  PRINT "Unmarried Head of Household"
  183. 1830  GOTO 1850
  184. 1840  PRINT "Qualifying Widow(er)"
  185. 1850  PRINT "Base Period";
  186. 1860  PRINT SPC(20)"(a)"SPC(9)"(b)"SPC(9)"(c)"SPC(9)"(d)"
  187. 1870  PRINT "Income and Adjustments ";
  188. 1880  FOR I=1 TO 4
  189. 1890  PRINT SP(6) A(1)-I;
  190. 1900  NEXT
  191. 1910  PRINT
  192. 1920  REM  PRINT LINE 1
  193. 1930  I=2:J=1
  194. 1940  GOSUB 2490
  195. 1950  REM  PRINT LINES 2a AND 2b
  196. 1960  PRINT "Line  2a"TAB(24)
  197. 1970  FOR J=1 TO 4
  198. 1980  IF A(1)-J<1979 THEN PRINT USING PU$; A(5+J); ELSE PRINT SPC(12)
  199. 1990  NEXT
  200. 2000  PRINT
  201. 2010  PRINT "Line  2b"TAB(24)
  202. 2020  FOR J=1 TO 4
  203. 2030  IF A(1)-J>1978 THEN PRINT USING PU$; A(5+J); ELSE PRINT SPC(12)
  204. 2040  NEXT
  205. 2050  PRINT
  206. 2060  REM  PRINT LINE 3
  207. 2070  I=10:J=3
  208. 2080  GOSUB 2490
  209. 2090  REM  PRINT LINE 4
  210. 2100  I=16:J=4
  211. 2110  GOSUB 2490
  212. 2120  REM  PRINT LINE 5
  213. 2130  I=22:J=5
  214. 2140  GOSUB 2490
  215. 2150  PRINT "Computation of Averageable Income"
  216. 2160  PRINT "Line  6"TAB(60):PRINT USING PU$; A(26)
  217. 2170  PRINT "Line  7"TAB(60):PRINT USING PU$; A(20)
  218. 2180  PRINT "Line  8"TAB(60):PRINT USING PU$; A(27)
  219. 2190  PRINT "Line  9"TAB(60):PRINT USING PU$; A(21)
  220. 2200  FOR J=10 TO 13
  221. 2210  PRINT "Line";J;
  222. 2220  IF J=11 THEN PRINT TAB(48) ELSE PRINT TAB(60)
  223. 2230  PRINT USING PU$; A(J+18)
  224. 2240  NEXT J
  225. 2250  REM  WAIT FOR OPERATOR CUE TO CONTINUE
  226. 2260  GOSUB 2590
  227. 2270  PRINT "Computation of Tax"
  228. 2280  FOR J=14 TO 16
  229. 2290  PRINT "Line";J;TAB(60):PRINT USING PU$; A(J+18)
  230. 2300  NEXT J
  231. 2310  PRINT "Line 17"TAB(60):PRINT USING PU$; A(21)
  232. 2320  FOR J=18 TO 29
  233. 2330  PRINT "Line";J;
  234. 2340  IF J>19 AND J<23 OR J=24 OR J=25 THEN PRINT TAB(48):GOTO 2360
  235. 2350  PRINT TAB(60)
  236. 2360  PRINT USING PU$; A(J+17)
  237. 2370  NEXT J
  238. 2380  PRINT
  239. 2390  PRINT STRING$(26,"*")" END OF SCHEDULE G "STRING$(26,"*")
  240. 2400  PRINT
  241. 2410  REM  WAIT BEFORE ERASING SCREEN FOR NEXT TAXPAYER
  242. 2420  PRINT "Enter 'C' to continue with next taxpayer. ";
  243. 2430  INPUT "",W$
  244. 2440  IF W$="C" OR W$="c" THEN CLS:GOTO 160
  245. 2450  END
  246. 2460  REM
  247. 2470  REM  *** SUBROUTINE TO PRINT ALL OF LINE 1,3,4 OR 5 ***
  248. 2480  REM
  249. 2490  PRINT "Line "; J; TAB(24)
  250. 2500  FOR J=0 TO 3
  251. 2510  PRINT USING PU$; A(I+J);
  252. 2520  NEXT J
  253. 2530  PRINT
  254. 2540  RETURN
  255. 2550  REM
  256. 2560  REM  *** SUBROUTINE TO WAIT FOR OPERATOR CUE TO CONTINUE
  257. 2570  REM    SINCE ENTIRE SCHEDULE G DOESN'T FIT ON ONE SCREEN ***
  258. 2580  REM
  259. 2590  PRINT "Press [RETURN] to continue. ";
  260. 2600  INPUT "",W$
  261. 2610  RETURN
  262. 2620  REM
  263. 2630  REM  *** SUBROUTINE TO CALCULATE TAX ON AMOUNT S ***
  264. 2640  REM
  265. 2650  REM  INITIALIZE TAX TO ZERO
  266. 2660  T=0
  267. 2670  REM  SINGLE HAS 16 BRACKETS, ALL OTHERS HAVE 15
  268. 2680  K=15
  269. 2690  IF F>1 THEN 2720
  270. 2700  K=16
  271. 2710  REM  DETERMINE WHETHER TO USE SCHEDULE X, Y OR Z
  272. 2720  I=F
  273. 2730  REM  WIDOW(ER) SAME AS MARRIED/JOINT
  274. 2740  IF F<5 THEN 2770
  275. 2750  I=2
  276. 2760  REM  START WITH ZERP BRACLET A,PIMT
  277. 2770  J=1
  278. 2780  REM  IS INCOME <= ZERO BRACKET AMOUNT?
  279. 2790  IF S<=C(I,J) THEN 2920
  280. 2800  REM IS INCOME > THIS BRACKET'S CEILING?
  281. 2810  IF S>C(I,J+1) THEN 2870
  282. 2820  REM  FOUND PROPER TAX BRACKET--
  283. 2830  REM  --COMPUT TAX ON BALANCE OF INCOME
  284. 2840  T=(S-C(I,J))*R(I,J)/100+B(I,J)
  285. 2850  GOTO 2920
  286. 2860  REM  PROCEED TO NEXT BRACKET
  287. 2870  J=J+1
  288. 2880  IF J<K THEN 2810
  289. 2890  REM  TAX ON BALANCE OF INCOME IS AT HIGHEST RATE
  290. 2900  GOTO 2840
  291. 2910  REM  ROUND TAX AMOUNT
  292. 2920  T=FNR(T)
  293. 2930  RETURN
  294. 2940  REM
  295. 2950  REM  ***   SUBROUTINE TO READ TAX RATES   ***
  296. 2960  REM
  297. 2970  RESTORE
  298. 2980  REM  FIRST SCHEDULE X
  299. 2990  FOR J=1 TO 16
  300. 3000  READ B(1,J),R(1,J),C(1,J)
  301. 3010  NEXT J
  302. 3020  REM  THEN SCHEDULES Y & Z
  303. 3030  FOR I=2 TO 4
  304. 3040  FOR J=1 TO 15
  305. 3050  READ B(I,J),R(I,J),C(I,J)
  306. 3060  NEXT J
  307. 3070  NEXT I
  308. 3080  RETURN
  309. 3090  REM
  310. 3100  REM  ***** 1979 TAX RATE SCHEDULES X, Y AND Z *****
  311. 3110  REM
  312. 3120  REM  FOR EACH TABLE BELOW, GET BASE, RATE AND
  313. 3130  REM  CUTOFF DATA TRIPLET FROM THE RIGHTMOST THREE
  314. 3140  REM  COLUMNS OF THE APPROPRIATE SCHEDULE
  315. 3150  REM
  316. 3160  REM  ----SCHEDULE X (SINGLE TAXPAYERS)----
  317. 3170  REM
  318. 3180  DATA 0,14,2300,154,16,3400,314,18,4400,692,19,6500,1072,21,8500
  319. 3190  DATA 1555,24,10800,2059,26,12900,2605,30,15000,3565,34,18200
  320. 3200  DATA 5367,39,23500,7434,44,28800,9766,49,34100,13392,55,41500
  321. 3210  DATA 20982,63,55300,37677,68,81800,55697,70,108300
  322. 3220  REM
  323. 3230  REM  ----SCHEDULE Y (JOINT/WIDOW)----
  324. 3240  REM
  325. 3250  DATA 0,14,3400,294,16,5500,630,18,7600,1404,21,11900,2265,24,16000
  326. 3260  DATA 3273,28,20200,4505,32,24600,6201,37,29900,8162,43,35200,12720
  327. 3270  DATA 49,45800,19678,54,60000,33502,59,85600,47544,64,109400
  328. 3280  DATA 81464,68,162400,117504,70,215400
  329. 3290  REM
  330. 3300  REM  ----SCHEDULE Y (SEPARATE)----
  331. 3310  REM
  332. 3320  DATA 0,14,1700,147,16,2750,315,18,3800,702,21,5950,1132.50,24,8000
  333. 3330  DATA 1636.50,28,10100,2252.50,32,12300,3100.50,37,14950,4081,43
  334. 3340  DATA 17600,6360,49,22900,9839,54,30000,16751,59,42800,23772,64
  335. 3350  DATA 54700,40732,68,81200,58752,70,107700
  336. 3360  REM
  337. 3370  REM  ----SCHEDULE Z (UNMARRIED HEAD OF HOUSEHOLD)----
  338. 3380  REM
  339. 3390  DATA 0,14,2300,294,16,4400,630,18,6500,1026,22,8700,1708,24,11800
  340. 3400  DATA 2476,26,15000,3308,31,18200,4951,36,23500,6859,42,28800,9085
  341. 3410  DATA 46,34100,13961,54,44700,22547,59,60600,35055,63,81800,51750
  342. 3420  DATA 68,108300,87790,70,161300
  343. 3430  END
  344.